\chapter{Systemcalls in alphabetical order}
 
\author {Sven Goldt}
\title {The Linux Programmer's Guide}

\begin{tabbing}{lcr}

just-a-tabspace-holder- \quad \=
 - \quad \= \kill
\_exit \> - \> like exit but with fewer actions (m+c)\\
accept \> - \> accept a connection on a socket (m+c!)\\
access \> - \> check user's permissions for a file (m+c)\\
acct \> - \> not yet implemented (mc)\\
adjtimex \> - \> set/get kernel time variables (-c)\\
afs\_syscall \> - \> reserved andrew filesystem call (-)\\
alarm \> - \> send SIGALRM at a specified time (m+c)\\
bdflush \> - \> flush dirty buffers to disk (-c)\\
bind \> - \> name a socket for interprocess communication (m!c)\\
break \> - \> not yet implemented (-)\\
brk \> - \> change data segment size (mc)\\
chdir \> - \> change working directory (m+c)\\
chmod \> - \> change file attributes (m+c)\\
chown \> - \> change ownership of a file (m+c)\\
chroot \> - \> set a new root directory (mc)\\
clone \> - \> see fork (m-)\\
close \> - \> close a file by reference (m+c)\\
connect \> - \> link 2 sockets (m!c)\\
creat \> - \> create a file (m+c)\\
create\_module \> - \> allocate space for a loadable kernel module (-)\\
delete\_module \> - \> unload a kernel module (-)\\
dup \> - \> create a file descriptor duplicate (m+c)\\
dup2 \> - \> duplicate a file descriptor (m+c)\\
execl, execlp, execle, ...\> - \> see execve (m+!c)\\
execve \> - \> execute a file (m+c)\\
exit \> - \> terminate a program (m+c)\\
fchdir \> - \> change working directory by reference ()\\
fchmod \> - \> see chmod (mc)\\
fchown \> - \> change ownership of a file (mc)\\
fclose \> - \> close a file by reference (m+!c)\\
fcntl \> - \> file/filedescriptor control (m+c)\\
flock \> - \> change file locking (m!c)\\
fork \> - \> create a child process (m+c)\\
fpathconf \> - \> get info about a file by reference (m+!c)\\
fread \> - \> read array of binary data from stream (m+!c)\\
fstat \> - \> get file status (m+c)\\
fstatfs \> - \> get filesystem status by reference (mc)\\
fsync \> - \> write file cache to disk (mc)\\
ftime \> - \> get timezone+seconds since 1.1.1970 (m!c)\\
ftruncate \> - \> change file size (mc)\\
fwrite \> - \> write array of binary datas to stream (m+!c)\\
get\_kernel\_syms \> - \> get kernel symbol table or its size (-)\\
getdomainname \> - \> get system's domainname (m!c)\\
getdtablesize \> - \> get filedescriptor table size (m!c)\\
getegid \> - \> get effective group id (m+c)\\
geteuid \> - \> get effective user id (m+c)\\
getgid \> - \> get real group id (m+c)\\
getgroups \> - \> get supplemental groups (m+c)\\
gethostid \> - \> get unique host identifier (m!c)\\
gethostname \> - \> get system's hostname (m!c)\\
getitimer \> - \> get value of interval timer (mc)\\
getpagesize \> - \> get size of a system page (m-!c)\\
getpeername \> - \> get address of a connected peer socket (m!c)\\
getpgid \> - \> get parent group id of a process (+c)\\
getpgrp \> - \> get parent group id of current process (m+c)\\
getpid \> - \> get process id of current process (m+c)\\
getppid \> - \> get process id of the parent process (m+c)\\
getpriority \> - \> get a process/group/user priority (mc)\\
getrlimit \> - \> get resource limits (mc)\\
getrusage \> - \> get usage of resources (m)\\
getsockname \> - \> get the adress of a socket (m!c)\\
getsockopt \> - \> get option settings of a socket (m!c)\\
gettimeofday \> - \> get timezone+seconds since 1.1.1970 (mc)\\
getuid \> - \> get real uid (m+c)\\
gtty \> - \> not yet implemented ()\\
idle \> - \> make a process a candidate for swap (mc)\\
init\_module \> - \> insert a loadable kernel module (-)\\
ioctl \> - \> manipulate a character device (mc)\\
ioperm \> - \> set some i/o port's permissions (m-c)\\
iopl \> - \> set all i/o port's permissions (m-c)\\
ipc \> - \> interprocess communication (-c)\\
kill \> - \> send a signal to a process (m+c)\\
killpg \> - \> send a signal to a process group (mc!)\\
klog \> - \> see syslog (-!)\\
link \> - \> create a hardlink for an existing file (m+c)\\
listen \> - \> listen for socket connections (m!c)\\
llseek \> - \> lseek for large files (-)\\
lock \> - \> not implemented yet ()\\
lseek \> - \> change the position ptr of a file descriptor (m+c)\\
lstat \> - \> get file status (mc)\\
mkdir \> - \> create a directory (m+c)\\
mknod \> - \> create a device (mc)\\
mmap \> - \> map a file into memory (mc)\\
modify\_ldt \> - \> read or write local descriptor table (-)\\
mount \> - \> mount a filesystem (mc)\\
mprotect \> - \> read, write or execute protect memory (-)\\
mpx \> - \> not implemented yet ()\\
msgctl \> - \> ipc message control (m!c)\\
msgget \> - \> get an ipc message queue id (m!c)\\
msgrcv \> - \> receive an ipc message (m!c)\\
msgsnd \> - \> send an ipc message (m!c)\\
munmap \> - \> unmap a file from memory (mc)\\
nice \> - \> change process priority (mc)\\
oldfstat \> - \> no longer existing\\
oldlstat \> - \> no longer existing\\
oldolduname \> - \> no longer existing\\
oldstat \> - \> no longer existing\\
olduname \> - \> no longer existing\\
open \> - \> open a file (m+c)\\
pathconf \> - \> get information about a file (m+!c)\\
pause \> - \> sleep until signal (m+c)\\
personality \> - \> change current execution domain for ibcs (-)\\
phys \> - \> not implemented yet (m)\\
pipe \> - \> create a pipe (m+c)\\
prof \> - \> not yet implemented ()\\
profil \> - \> execution time profile (m!c)\\
ptrace \> - \> trace a child process (mc)\\
quotactl \> - \> not implemented yet ()\\
read \> - \> read data from a file (m+c)\\
readv \> - \> read datablocks from a file (m!c)\\
readdir \> - \> read a directory (m+c)\\
readlink \> - \> get content of a symbolic link (mc)\\
reboot \> - \> reboot or toggle vulcan death grip (-mc)\\
recv \> - \> receive a message from a connected socket (m!c)\\
recvfrom \> - \> receive a message from a socket (m!c)\\
rename \> - \> move/rename a file (m+c)\\
rmdir \> - \> delete an empty directory (m+c)\\
sbrk \> - \> see brk (mc!)\\
select \> - \> sleep until action on a filedescriptor (mc)\\
semctl \> - \> ipc semaphore control (m!c)\\
semget \> - \> ipc get a semaphore set identifier (m!c)\\
semop \> - \> ipc operation on semaphore set members (m!c)\\
send \> - \> send a message to a connected socket (m!c)\\
sendto \> - \> send a message to a socket (m!c)\\
setdomainname \> - \> set system's domainname (mc)\\
setfsgid \> - \> set filesystem group id ()\\
setfsuid \> - \> set filesystem user id ()\\
setgid \> - \> set real group id (m+c)\\
setgroups \> - \> set supplemental groups (mc)\\
sethostid \> - \> set unique host identifier (mc)\\
sethostname \> - \> set the system's hostname (mc)\\
setitimer \> - \> set interval timer (mc)\\
setpgid \> - \> set process group id (m+c)\\
setpgrp \> - \> has no effect (mc!)\\
setpriority \> - \> set a process/group/user priority (mc)\\
setregid \> - \> set real and effective group id (mc)\\
setreuid \> - \> set real and effective user id (mc)\\
setrlimit \> - \> set resource limit (mc)\\
setsid \> - \> create a session (+c)\\
setsockopt \> - \> change options of a socket (mc)\\
settimeofday \> - \> set timezone+seconds since 1.1.1970 (mc)\\
setuid \> - \> set real user id (m+c)\\
setup \> - \> initialize devices and mount root (-)\\
sgetmask \> - \> see siggetmask (m)\\
shmat \> - \> attach shared memory to data segment (m!c)\\
shmctl \> - \> ipc manipulate shared memory (m!c)\\
shmdt \> - \> detach shared memory from data segment (m!c)\\
shmget \> - \> get/create shared memory segment (m!c)\\
shutdown \> - \> shutdown a socket (m!c)\\
sigaction \> - \> set/get signal handler (m+c)\\
sigblock \> - \> block signals (m!c)\\
siggetmask \> - \> get signal blocking of current process (!c)\\
signal \> - \> setup a signal handler (mc)\\
sigpause \> - \> use a new signal mask until a signal (mc)\\
sigpending \> - \> get pending, but blocked signals (m+c)\\
sigprocmask \> - \> set/get signal blocking of current process (+c)\\
sigreturn \> - \> not yet used ()\\
sigsetmask \> - \> set signal blocking of current process (c!)\\
sigsuspend \> - \> replacement for sigpause (m+c)\\
sigvec \> - \> see sigaction (m!)\\
socket \> - \> create a socket communication endpoint (m!c)\\
socketcall \> - \> socket call multiplexer (-)\\
socketpair \> - \> create 2 connected sockets (m!c)\\
ssetmask \> - \> see sigsetmask (m)\\
stat \> - \> get file status (m+c)\\
statfs \> - \> get filesystem status (mc)\\
stime \> - \> set seconds since 1.1.1970 (mc)\\
stty \> - \> not yet implemented ()\\
swapoff \> - \> stop swapping to a file/device (m-c)\\
swapon \> - \> start swapping to a file/device (m-c)\\
symlink \> - \> create a symbolic link to a file (m+c)\\
sync \> - \> sync memory and disk buffers (mc)\\
syscall \> - \> execute a systemcall by number (-!c)\\
sysconf \> - \> get value of a system variable (m+!c)\\
sysfs \> - \> get infos about configured filesystems ()\\
sysinfo \> - \> get Linux system infos (m-)\\
syslog \> - \> manipulate system logging (m-c)\\
system \> - \> execute a shell command (m!c)\\
time \> - \> get seconds since 1.1.1970 (m+c)\\
times \> - \> get process times (m+c)\\
truncate \> - \> change file size (mc)\\
ulimit \> - \> get/set file limits (c!)\\
umask \> - \> set file creation mask (m+c)\\
umount \> - \> unmount a filesystem (mc)\\
uname \> - \> get system information (m+c)\\
unlink \> - \> remove a file when not busy (m+c)\\
uselib \> - \> use a shared library (m-c)\\
ustat \> - \> not yet implemented (c)\\
utime \> - \> modify inode time entries (m+c)\\
utimes \> - \> see utime (m!c)\\
vfork \> - \> see fork (m!c)\\
vhangup \> - \> virtually hang up current tty (m-c)\\
vm86 \> - \> enter virtual 8086 mode (m-c)\\
wait \> - \> wait for process termination (m+!c)\\
wait3 \> - \> bsd wait for a specified process (m!c)\\
wait4 \> - \> bsd wait for a specified process (mc)\\
waitpid \> - \> wait for a specified process (m+c)\\
write \> - \> write data to a file (m+c)\\
writev \> - \> write datablocks to a file (m!c)\\

\end {tabbing}

\bigskip
\noindent

(m) manual page exists. \\
(+) POSIX compliant. \\
(-) Linux specific. \\
(c) in libc. \\
(!) not a sole system call.uses a different system call. \\

\endinput
